package indi.kider.server.woniubus.service;

import indi.kider.common.model.apabus.Relet;
import indi.kider.common.model.apabus.Rent;
import indi.kider.common.model.apartment.Houses;
import indi.kider.common.model.employee.Tenant;
import indi.kider.common.model.employee.TenantQuery;
import indi.kider.common.model.woniubus.HouseVo;
import indi.kider.common.model.woniubus.TenantUpdateVo;
import indi.kider.common.model.woniubus.TenantVo;
import pers.vankid.common.model.base.CommonResponse;
import pers.vankid.common.utils.page.PageRequest;

import java.util.List;
import java.util.Map;

public interface WoniuBusService {
    /**
     * 承租人租房
     *VARCHAR
     * @param tenantVo
     * @return
     */
    CommonResponse rentHouse(TenantVo tenantVo)throws Exception;

    /**
     * 续住
     * @param relet
     * @return
     * @throws Exception
     */
    CommonResponse reletHouse(Relet relet)throws Exception;

    /**
     * 退租
     * @param rent
     * @return
     * @throws Exception
     */
    CommonResponse rentOutHouse(Rent rent)throws Exception;

    /**
     * 查询租列表
     * @param request
     * @return
     */
    List<Map> getTenantListByHouseId(PageRequest<Rent> request);
    /**
     * 根据房间ID查询租客列表【已搬离】（分页）
     * @param request
     * @return
     */
    List<Map> getMovedTenantListByHouseId(PageRequest<Rent> request);
    /**
     * 查询租列表 不分页
     * @param rent
     * @return
     */
    List<Map> getTenantListByHouseIdNoPage(Rent rent);

    /**
     * 修改用户性别
     * @param tenantUpdateVo
     * @return
     * @throws Exception
     */
    CommonResponse modifyTenantSex(TenantUpdateVo tenantUpdateVo)throws Exception;

    /**
     *  修改用户信息
     * @param tenantUpdateVo
     * @return
     * @throws Exception
     */
    CommonResponse modifyTenant(TenantUpdateVo tenantUpdateVo)throws Exception;

    /**
     * 根据身份证查租客信息
     * @param cardId
     * @return
     */
    Tenant getTenantByCardId(String cardId)throws Exception;
    Tenant getDevTenantByCardId(String cardId)throws Exception;

    /**
     * 修改发布状态
     * @param houses
     * @return
     * @throws Exception
     */
    CommonResponse updateHouseRelease(Houses houses)throws Exception;
}
